package com.athena.config;

import com.athena.framework.annotation.Yml;
import com.athena.framework.annotation.YmlValue;

@Yml(value = "default-app.yml")
public class DefaultAppConfig {

    /**
     * 框架要扫描的路径，再启动时会扫描该包极其子包的类
     */
    @YmlValue("athena.scanerBasePackge")
    public static String scanerBasePackge;

    /**
     * tomcat运行时产生的文件的存放目录
     */
    @YmlValue("tomcat.catalinaHome")
    public static String catalinaHome;

    /**
     * tomcat默认的域名
     */
    @YmlValue("tomcat.hostname")
    public static String hostname;

    /**
     * tomcat的端口
     */
    @YmlValue("tomcat.port")
    public static Integer port;

    /**
     * classpath中存储web静态资源的文件夹
     */
    @YmlValue("athena.webDir.path")
    public static String webDir;

    /**
     * web静态资源文件夹是否在classpath下
     */
    @YmlValue("athena.webDir.isClassPath")
    public static Boolean webInClassPath;

    /**
     * websocket服务host名称
     */
    @YmlValue("athena.websocket.hostname")
    public static String webSocketHostName;

    /**
     * websocket服务端口
     */
    @YmlValue("athena.websocket.port")
    public static Integer webSocketPort;

    /**
     * 404页面路径
     */
    @YmlValue("athena.errorPage.page404")
    public static String page_404;

    /**
     * 403页面路径
     */
    @YmlValue("athena.errorPage.page403")
    public static String page_403;

    /**
     * 是否开启安全验证
     */
    @YmlValue("athena.authority.open")
    public static boolean isAuthority;

    /**
     * 白名单列表
     */
    @YmlValue("athena.authority.whiteList")
    public static String whiteList;

    /**
     * 实现权限动态设置的类名
     */
    @YmlValue("athena.authority.authorityClass")
    public static String authorityClass;

    /**
     * 是否连接redis
     */
    @YmlValue("athena.redis.open")
    public static boolean openRedis;

    /**
     * redis url
     */
    @YmlValue("athena.redis.url")
    public static String redisUrl;

    /**
     * redis端口
     */
    @YmlValue("athena.redis.port")
    public static int redisPort;

    /**
     * redis密码
     */
    @YmlValue("athena.redis.password")
    public static String redisPassword;
}
